// var add = function (m) {
//   var temp = function (n) {
//     return add(m + n);
//   }
//   temp.toString = function () {
//     return m;
//   }
//   return temp;
// };
function add (...m) {
  let temp = (...n) => {
    return add(...m, ...n)
  }
  temp.toString = function () {
    return m.reduce((p, val) => p + val)
  }
  return temp
}
console.log(add(2, 3)(4)(5).toString()); // 12
console.log(add(2, 3)(6)(9)(25).toString()); // 43